package com.sunwhite.codeidea.reflect.demo;

import java.lang.reflect.Constructor;

/*
 * 用反射的方式创建一个类的对象
 *
 * */
public class Demo3 {
	public static void main(String[] args) throws Exception {
		//字节码对象 Class类对象
		//基石
		Class clazz = Person.class;
		//得到字节码对象中的构造器对象 Constructor对象
		Constructor[] cons = clazz.getConstructors();
		for (Constructor constructor : cons) {
//			System.out.println(constructor);
		}
		//用第二个构造器对象创建该类的实例
		Constructor con = cons[1];
		Object obj = con.newInstance();
		System.out.println(obj);

		//用第一个
		con=cons[0];
		Object obj2 = con.newInstance("zhangsan",18);
		System.out.println(obj2);

		//字节码对象的newInstance和Constructor的newInstance有没有区别？有没有关联？
		//字节码对象的newInstance方法是调用了Constructor对象创建的该类实例的
		//并且调用的是无参的



	}
}
